package com.boss.salary.dao;

import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.FormulaManage;

import java.util.List;
import java.util.Map;

public interface IFormulaManageDao {

    /**
     * 公式管理：条件查询页面
     * @param paginationDTO
     * @param queryForm
     * @return
     */
    List<FormulaManage> selectFormulaManagePage(PaginationDTO paginationDTO, String agencyId, Map<String,Object> queryForm);

    /**
     * 公式管理：条件查询总数
     * @param queryForm
     * @return
     */
    int selectFormulaManageTotal(String agencyId, Map<String,Object> queryForm);

    /**
     * 通过工资ID获取对应的计算公式
     * @param salaryIds
     * @return
     */
    List<FormulaManage> selectFormulaBySalaryId(String agencyId, List<String> salaryIds);

    /**
     * 通过工资id修改公式启停状态
     * @param salaryId
     */
    void updateOpenTypeBySalaryId(String agencyId, String salaryId, String openType,String meritPayCode);

    /**
     * 保存公式数据
     * @param formulaManage
     */
    void insertFormulaManage(FormulaManage formulaManage);

    /**
     * 保存公式数据
     * @param formulaManage
     */
    void updateFormulaManage(FormulaManage formulaManage);

    /**
     * 获取单条公式详情
     * @param id
     * @return
     */
    FormulaManage selectFormulaDetail(String id);

    /**
     * 通过id删除公式
     * @param id
     */
    void deleteFormulaById(String id);

    /**
     * 获取区划下的公式
     * @param province 区划
     * @param agencyIds 机构ids
     * @param computeSalaryIds 计算项id
     * @return
     */
    List<FormulaManage> selectFormulaBySalaryId(String province, List<String> agencyIds, List<String> computeSalaryIds);

    /**
     * 三个方法 复制公式方法
     * @param agencyId
     * @param province
     * @return
     */
    List<FormulaManage> selectFormulaManage(String agencyId, String province);


    void insertFormula( List<FormulaManage> formulaManageList);

    void deleteFormula(List<String> agencyIds);
}
